package com.example.designpatterns.iterator;

/**
 * 迭代器接口 - 定义访问和遍历元素的方法
 * @param <T> 迭代器元素类型
 */
public interface Iterator<T> {
    /**
     * 判断是否还有下一个元素
     * @return 如果有下一个元素返回true，否则返回false
     */
    boolean hasNext();
    
    /**
     * 获取下一个元素
     * @return 返回当前元素并移动到下一个位置
     */
    T next();
    
    /**
     * 移除当前元素
     * 这是一个可选操作，可能会抛出UnsupportedOperationException
     */
    default void remove() {
        throw new UnsupportedOperationException("迭代器不支持移除操作");
    }
} 